package util

object Queries {
  // En las consultas nativas, siempre dejar un espacio en blanco 
  // luego de los parametros que estén al final de la linea

  final val validateSubidaNotas = """
		  select distinct perprofe.nombres||' '||perprofe.apellidos,mater.nombre,c.nombre from curso c join matricula m on c.id=m.id_curso
		  join materia_grado mg on c.id_grado=mg.id_Grado
		  join materia mater on mater.id=mg.id_materia
		  join materia_curso mc on mc.id_materia=mg.id_materia and mc.id_curso=c.id
		  join profesor profe on profe.id=mc.id_profesor
		  join persona perprofe on perprofe.id=profe.id_persona
		  left join calificacion_periodo cc
		  on cc.id_materia=mg.id_materia and cc.id_grado=mg.id_grado and cc.id_estudiante=m.id_Estudiante and cc.id_periodo=?idPeriodo
		  where  c.id_calendario_academico=?idCalendarioAcademico AND cc.nota is null
		"""

  final val getMateriasGradoProfesor = """
    	select distinct mc.id_materia, g.id_colegio, g.id 
      	from materia_curso mc
		join curso c on c.id = mc.id_curso
    	join grado g on g.id = c.id_grado 
      	where mc.id_profesor = ?idProfesor 
    	and c.id_calendario_academico=?idCalendarioAcademico 
      """

  final val getMateriasGrado = """
    	SELECT DISTINCT mat FROM MateriaGrado mg
    	JOIN Materia mat ON mat.id=mg.idMateria 
    	WHERE mg.idGrado = :idGrado and :idCalendarioAcademico=:idCalendarioAcademico  
      """

  final val getIndicadoresBoletin = """
     	select m.nombre, cp.nota, i.categoria, i.consecutivo, i.descripcion  
     	from calificacion_periodo cp 
     	left join indicador_estudiante_periodo iep on cp.id_estudiante = iep.id_estudiante 
    			and cp.id_periodo = iep.id_periodo and cp.id_materia = iep.id_materia
     	join materia m on m.id = cp.id_materia
     	join indicador i on i.consecutivo = iep.consecutivo_indicador 
     			and i.categoria = iep.categoria_indicador 
     			and i.id_materia = iep.id_materia and i.id_grado = iep.id_grado 
     			and i.id_periodo = iep.id_periodo
     	where cp.id_estudiante = ?idEstudiante and cp.id_periodo = ?idPeriodo 
     """

  final val getDatosBoletin = """
      	select c.nombre, e.id, p.apellidos || ' ' || p.nombres, per.numero, cur.nombre,
    			g.nombre, c.jornada, cal.descripcion 
    	from colegio c 
    	join matricula m on m.id_calendario_academico = c.id_calendario_academico_actual
    		and m.id_estudiante = ?idEstudiante  
    	join estudiante e on m.id_estudiante = e.id
    	join persona p on p.id = e.id_persona
    	join curso cur on cur.id = m.id_curso
    	join grado g on g.id = cur.id_grado
    	join periodo per on per.id = c.id_periodo_actual
    	join calendario_academico cal on cal.id = c.id_calendario_academico_actual
    	where c.id = ?idColegio  
      """

  final val getLista = """
      	select e.id, p.apellidos || ' ' || p.nombres from curso cur 
      	join matricula m on m.id_curso = cur.id
      	join estudiante e on e.id = m.id_estudiante
      	join persona p on p.id = e.id_persona
      	where cur.id = ?idCurso   
      """

  final val getDatosLista = """
    	select c.nombre, pp.nombres || ' ' || pp.apellidos, m.nombre, 
    			c.jornada, per.numero, cur.nombre, cal.descripcion, g.nombre  
    	from curso cur
    	join grado g on g.id = cur.id_grado
    	join colegio c on c.id = g.id_colegio
    	join periodo per on per.id = c.id_periodo_actual
    	join calendario_academico cal on cal.id = c.id_calendario_academico_actual
    	join materia_curso mc on mc.id_curso = cur.id
    	join materia m on m.id = mc.id_materia
    	join profesor p on p.id = mc.id_profesor
    	join persona pp on pp.id = p.id_persona
    	where mc.id_curso = ?idCurso and mc.id_materia = ?idMateria  
     """

  final val getCalificacionesPeriodos = """
     	select e.id,p.apellidos, p.nombres,cc.nota 
     	from estudiante e 
     	join persona p on p.id=e.id_persona 
     	join matricula m on m.id_estudiante=e.id
    	join periodos per1 on per.id_calendario_academico = m.id_calendario_academico 
    		and per1.id_periodo = ?idPeriodo 
     	left join calificacion_periodo cc on e.id=cc.id_estudiante 
     		AND cc.id_materia=?idMateria and cc.id_periodo in (
    			select id_periodo from periodo 
    			where id_calendario_academico = ?id_calendario_academico 
    				and numero<= per1.numero) 
     	WHERE m.id_curso=?idCurso and per
     """
  final val getEstudianteZoomOut = """
  		select e.id,cur.id,cur.id_grado,e.id_colegio from estudiante e
  		join colegio c on c.id=e.id_colegio
  		join matricula m on m.id_calendario_academico=c.id_calendario_academico_Actual and m.id_estudiante=e.id
  		join curso cur on cur.id=m.id_curso
  		where e.id=?idEstudiante;
      """
}